package co.edu.usbcali.modeloo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Actividades entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "actividades", catalog = "estimacionpreliminar")
public class Actividades implements java.io.Serializable {

	// Fields

	private Integer idactividad;
	private Proyectos proyectos;
	private String nombreactividad;
	private Date fechainicioactividad;
	private Date fechafinactividad;
	private Integer numeropersonalenactividad;
	private Set<SubactividadPorActividad> subactividadPorActividads = new HashSet<SubactividadPorActividad>(
			0);

	// Constructors

	/** default constructor */
	public Actividades() {
	}

	/** minimal constructor */
	public Actividades(Integer idactividad) {
		this.idactividad = idactividad;
	}

	/** full constructor */
	public Actividades(Integer idactividad, Proyectos proyectos,
			String nombreactividad, Date fechainicioactividad,
			Date fechafinactividad, Integer numeropersonalenactividad,
			Set<SubactividadPorActividad> subactividadPorActividads) {
		this.idactividad = idactividad;
		this.proyectos = proyectos;
		this.nombreactividad = nombreactividad;
		this.fechainicioactividad = fechainicioactividad;
		this.fechafinactividad = fechafinactividad;
		this.numeropersonalenactividad = numeropersonalenactividad;
		this.subactividadPorActividads = subactividadPorActividads;
	}

	// Property accessors
	@Id
	@Column(name = "IDACTIVIDAD", unique = true, nullable = false)
	public Integer getIdactividad() {
		return this.idactividad;
	}

	public void setIdactividad(Integer idactividad) {
		this.idactividad = idactividad;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "IDPROYECTO")
	public Proyectos getProyectos() {
		return this.proyectos;
	}

	public void setProyectos(Proyectos proyectos) {
		this.proyectos = proyectos;
	}

	@Column(name = "NOMBREACTIVIDAD", length = 10)
	public String getNombreactividad() {
		return this.nombreactividad;
	}

	public void setNombreactividad(String nombreactividad) {
		this.nombreactividad = nombreactividad;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FECHAINICIOACTIVIDAD", length = 10)
	public Date getFechainicioactividad() {
		return this.fechainicioactividad;
	}

	public void setFechainicioactividad(Date fechainicioactividad) {
		this.fechainicioactividad = fechainicioactividad;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FECHAFINACTIVIDAD", length = 10)
	public Date getFechafinactividad() {
		return this.fechafinactividad;
	}

	public void setFechafinactividad(Date fechafinactividad) {
		this.fechafinactividad = fechafinactividad;
	}

	@Column(name = "NUMEROPERSONALENACTIVIDAD")
	public Integer getNumeropersonalenactividad() {
		return this.numeropersonalenactividad;
	}

	public void setNumeropersonalenactividad(Integer numeropersonalenactividad) {
		this.numeropersonalenactividad = numeropersonalenactividad;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "actividades")
	public Set<SubactividadPorActividad> getSubactividadPorActividads() {
		return this.subactividadPorActividads;
	}

	public void setSubactividadPorActividads(
			Set<SubactividadPorActividad> subactividadPorActividads) {
		this.subactividadPorActividads = subactividadPorActividads;
	}

}